// ['0-0', '0-1-1', '0-2', '0-2-2', '0-3-0-1'] ===>  
// ['0-0', '0-1', '0-1-1', '0-2', '0-2-2', '0-3', '0-3-0', '0-3-0-1']
export const formatArr = (arr) => {
  const result = arr.reduce((_arr, item) => [..._arr, ...sliceStr(item)], [])
  return [...new Set(result)].sort()
}
const sliceStr = (str) => {
  if (str.split('-').length > 2) {
    return str.split('-').reduce((_arr, item) => {
      if (!Array.isArray(_arr)) return [`${_arr}-${item}`]
      return [`${_arr[0]}-${item}`, ..._arr]
    })
  }
  return [str]
}

// 提取合适的menus数据
// 获取左侧的菜单栏数据
export function getMenu (menus, checkedKeys) {// checkedKeys 处理之后的key数组
  let arr = []
  checkedKeys.forEach(item => {
    menus.forEach(value => {
      if(value.key === item) {
        // arr.push({...value}) // 。。。或者Object.assign只能拷贝第一层级的对象的数据
        arr.push(Object.assign({}, value))
      }
    })
  })
  // 搞定第二层级
  arr.forEach(item => {
    if(item.children) {
      let newArr = getMenu(item.children,checkedKeys)
      item.children = newArr
    }
  })
  return arr
}

// 检测当前路由是不是在 需要渲染的数据中
export function checkPathName (routes, pathname, arr) {
  // const arr: string[] = []
  routes.forEach(item => {
    if (item.children) {
      checkPathName(item.children, pathname, arr)
    }
    arr.push(item.path)
  })
  console.log('9999', arr)
  return arr.indexOf(pathname) !== -1
}